1. Technical Field
The present invention relates to data storage and, in particular, to data cache in a storage controller. Still more particularly, the present invention provides a method and apparatus for using a solid state disk as a storage controller level 2 cache.
2. Description of the Related Art
A storage controller is an embedded system logically connected between a host computer system and a pool of storage. FIG. 1 illustrates an example of a typical storage controller system. Input/output (I/O) host 102 sends read and write data access requests to storage module 110. The storage module includes storage controller 120 and disk drives 130. Storage controller 120 performs read and write operations to satisfy the data access requests of the I/O host.
Storage controller 120 includes I/O cache 122. This I/O cache, also referred to as storage controller level 1 cache, is located in the storage controller memory. Data blocks that are read from disk drives 0–N may be stored in the I/O cache so that frequently accessed data may be read from the faster memory device rather than the slower disk drives. Furthermore, I/O cache 122 may also serve as intermediate storage for data blocks that are written to the disk drives. Subsequent reads of these data blocks may be found in the cache, thus reducing access time.
More particularly, redundant array of independent disks (RAID) systems, may stripe data blocks and store each stripe on a different physical disk drive. For example, in the storage controller system shown in FIG. 1, a data block written to storage module 110 may be striped into N–1 stripes, each stripe being stored on a respective one of drives 0-N 130. With the greater number of reads and writes to physical drives in RAID systems, the importance of I/O cache is increased.
Therefore, it would be advantageous to provide an improved multi-level cache for storage controller systems.